/**微信支付助手 */
/**发起微信支付功能 
 * money = 金额, formData 付款类型 付款成功回调函数
 */
import utils from "@/common/tools/utils.js";

export function wxpayHelper(money, formData) {
	 
 
	const request = new Promise((resolve, reject) => {
		uni.request({
			url:  utils.getWxpayUrl(), //调用wxapp.php中的doPagePay方法获取支付参数
			method: "POST",
			header: {
				'x-requested-with': 'xmlhttprequest',
				'Content-Type': 'application/x-www-form-urlencoded'
			},
			data: {
				...formData,
				money
			},
			success(res) {
				if (res.data && res.data.data && !res.data.errno) {
					resolve(res.data)
				}else{
					reject(res.data)
				}
			},
			fail(res) {
				reject(res.data)
			}
		})
	});
	
	 
		return new Promise((resolve, reject)=>{
			request.then((ret)=>{
				//发起支付
				console.log('发起微信支付', ret);
				wx.requestPayment({
					'timeStamp': ret.data.timeStamp,
					'nonceStr': ret.data.nonceStr,
					'package': ret.data.package,
					'signType': 'MD5',
					'paySign': ret.data.paySign,
					'success': function(res) {
						//执行支付成功提示
						resolve(res)
					},
					'fail': function(res) {
						 reject(res)
					}
				})
				
			}, fail=>{
				reject(fail)
			})
		})
	 
}

//老版本，参考用
function pay(){

	uni.request({
		url: pay_url, //调用wxapp.php中的doPagePay方法获取支付参数
		method: "POST",
		header: {
			'x-requested-with': 'xmlhttprequest',
			'Content-Type': 'application/x-www-form-urlencoded'
		},
		data: {
			...formData,
			money
		},
		success(res) {
			console.log('发起支付', res);
			if (res.data && res.data.data && !res.data.errno) {
				//发起支付
				wx.requestPayment({
					'timeStamp': res.data.data.timeStamp,
					'nonceStr': res.data.data.nonceStr,
					'package': res.data.data.package,
					'signType': 'MD5',
					'paySign': res.data.data.paySign,
					'success': function(res) {
						//执行支付成功提示
						console.log(res)
						callback(res);
					},
					'fail': function(res) {
						console.log(res)
						wx.showToast({
							title: '支付失败',
							icon: 'none',
							duration: 1000
						});
					}
				})
			} else {
				uni.showToast({
					title: res.data.message,
					icon: 'none'
				})
			}
		},
		fail(res) {
			console.log(res)
			wx.showModal({
				title: '系统提示',
				content: res.data.message ? res.data.message : '错误',
				showCancel: false,
				success: function(res) {
					if (res.confirm) {
						wx.showToast({
							title: '支付失败',
							icon: 'none',
							duration: 1000
						});
					}
				}
			})
		}
	})
};